SymPy

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
SymPy
Sympy logo.
Тип Система компьютерной алгебры
Разработчик SymPy Development Team
Написана на Python
Операционная система кросс-платформенное ПО
Первый выпуск 2007; 17 лет назад (2007)
Последняя версия 1.10.1[1] (20 марта 2022; 2 года назад (2022-03-20))
Лицензия BSD License

SymPy — это библиотека Python с открытым исходным кодом, используемая для символьных вычислений. Она предоставляет возможности компьютерной алгебры в виде отдельного приложения, как библиотека для других приложений или в Интернете как SymPy Live или SymPy Gamma. SymPy, аналогично другим библиотекам имеет стандартную установку и проверку, поскольку он полностью написан на Python с небольшими подпрограммами на других языках[2][3][4]. Такая унификация доступа в сочетании с простой и расширяемой кодовой базой на широко распространённом языке делает SymPy системой компьютерной алгебры с относительно низким барьером для входа.

SymPy включает в себя функции базовой символьной арифметики, математический анализ, алгебру и дискретную математику, элементы квантовой физики. Она может форматировать результат вычислений в виде кода LaTeX[2][3].

SymPy — это бесплатное программное обеспечение, работающее под новой лицензией BSD. Ведущие разработчики — Ондржей Чертик и Аарон Мерер. Её код начал писать в 2005 году Ондржей Чертик[5].

Функции

Библиотека SymPy разделена на ядро с множеством дополнительных модулей.

В настоящее время ядро SymPy содержит около 260 000 строк кода[6] (также включает исчерпывающий набор самотестирования: более 100 000 строк в 350 файлах с версии 0.7.5), а его возможности включают[2][3][7][8][9]:

Основные возможности

Полиномы

Исчисление

Решение уравнений

Дискретная математика

Матрицы

Геометрия

Графика

Обратите внимание: для построения графика требуется внешний модуль matplotlib или Pyglet.

  • Координатные модели
  • Построение геометрических объектов
  • 2D и 3D
  • Интерактивный интерфейс
  • Цвета
  • Анимации

Физика

Статистика

Комбинаторика

Печать

  • Структурная распечатка: красивая печать в ASCII / Unicode, LaTeX
  • Генерация кода: C, Fortran, Python

Зависимости

Начиная с версии 1.0, SymPy имеет пакет mpmath в качестве необходимого.

Есть несколько дополнительных зависимостей, которые могут расширить его возможности:

  • gmpy: Если установлен gmpy, полиномиальный модуль SymPy будет автоматически использовать его для более быстрых вычислений. Это может повысить производительность некоторых операций в несколько раз.
  • matplotlib: если установлен matplotlib, SymPy может использовать его для построения графиков.
  • Pyglet: альтернативный пакет для построения графиков.

Примечания

  1. SymPy 1.10.1.
  2. 2,0 2,1 2,2 SymPy homepage. Дата обращения: 13 октября 2014. Архивировано 20 ноября 2019 года.
  3. 3,0 3,1 3,2 Joyner (2012). «Open source computer algebra systems: SymPy». ACM Communications in Computer Algebra 45 (3/4): 225–234. doi:10.1145/2110170.2110185.
  4. Meurer (2017-01-02). «SymPy: symbolic computing in Python» (en). PeerJ Computer Science 3: e103. doi:10.7717/peerj-cs.103. ISSN 2376-5992.
  5. https://github.com/sympy/sympy/wiki/SymPy-vs.. Дата обращения: 3 июля 2021. Архивировано 17 сентября 2021 года.
  6. Sympy project statistics on Open HUB. Дата обращения: 13 октября 2014. Архивировано 17 октября 2014 года.
  7. Constrained multibody dynamics with Python: From symbolic equation generation to publication // [1]. Архивная копия от 3 июня 2018 на Wayback Machine
  8. Rocklin (2012). «Symbolic Statistics with SymPy». Computing in Science & Engineering 14 (3): 88–93. doi:10.1109/MCSE.2012.56.
  9. Asif (2014). «Automatic code generator for higher order integrators». Computer Physics Communications 185 (5): 1461–1472. arXiv:1310.2111. doi:10.1016/j.cpc.2014.01.012. Bibcode2014CoPhC.185.1461M.
  10. Assumptions Module — SymPy 1.4 documentation. docs.sympy.org. Дата обращения: 5 июля 2019. Архивировано 5 июля 2019 года.
  11. Continuum Mechanics — SymPy 1.4 documentation. docs.sympy.org. Дата обращения: 5 июля 2019. Архивировано 5 июля 2019 года.